<?php


namespace app\admin\exception;

use Webman\Http\Request;

class AdminException extends \support\exception\Exception
{
    public function render(Request $request) {
        // 判断是否为ajax请求
        if ($request->expectsJson()) {
            $json = [
                'code' => $this->getCode(),
                'data' => [],
                'msg' => $this->getMessage()
            ];
            if (config('app.debug')) {
                $json['traces'] = explode("#", $this->getTraceAsString());
            }
            return json($json);
        }
        // 如果是ajax请求 返回json
        // 如果是访问页面 debug模式返回异常界面详细页 否则根据code返回不同视图文件
        if ($this->getCode() == 403) {
            return view('error/403', [
                'title' => $this->getMessage()
            ]);
        }
        return null;
    }
}
